﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CajaChica.Clases;
namespace CajaChica.Formularios
{
    public partial class frmMaestroProveedores : CajaChica.Formularios.frmMaestro
    {
        clsPersona objPersona;
        clsTipoPersona objTipoPersona;
        clsTipoDocumento objTipoDocumento;
        public frmMaestroProveedores()
        {
            InitializeComponent();
        }

        private void sbpNuevo_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesTextBox();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiRegistro;
            txtRuc.Select();
        }

        private void LimpiarControlesTextBox()
        {
            txtApellido1.Text = "";
            txtApellido2.Text = "";
            txtAtencion.Text = "";
            txtCodigo.Text = "";
            txtCriterioBuscar.Text = "";
            txtDireccion.Text = "";
            txtNombre1.Text = "";
            txtNombre2.Text = "";
            txtRazonSocial.Text = "";
            txtRuc.Text = "";
            txtTelefono.Text = "";
            cboTipoPersona.Text = "";
            cboDocumento.SelectedIndex = -1;
            cboTipoPersona.SelectedIndex = -1;
        }

        private void btnNuevoGuardar_Click(object sender, EventArgs e)
        {
            objPersona = new clsPersona();
            try
            {
                objPersona.Guardar(
                    txtRuc.Text.Trim(),
                    txtRazonSocial.Text.Trim(),
                    txtNombre1.Text.Trim(),
                    txtNombre2.Text.Trim(),
                    txtApellido1.Text.Trim(),
                    txtApellido2.Text.Trim(),
                    cboDocumento.SelectedValue.ToString(),
                    txtTelefono.Text.Trim(),
                    cboTipoPersona.SelectedValue.ToString(),
                    txtDireccion.Text.Trim(),
                    txtAtencion.Text.Trim());
                MessageBox.Show("SE HA REGISTRADO UN NUEVO PROVEEDOR", "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                grdListado.DataSource = objPersona.CargarDatosGridView();
                this.LimpiarControlesTextBox();
                sbMantenimiento.ExpandedPanel = sbpVer;
                stcMaestro.SelectedTab = stiListado;
                txtCriterioBuscar.Select();
            }
            catch (Exception EX)
            {
                MessageBox.Show("SE HA PRODUCIDO UN ERROR AL GUARDAR EL PROVEEDOR\nPOR FAVOR INTENTE DE NUEVO",
                    "SISTEMA DE CAJA CHICA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void frmMaestroProveedores_Load(object sender, EventArgs e)
        {
            objPersona = new clsPersona();
            objTipoDocumento = new clsTipoDocumento();
            objTipoPersona = new clsTipoPersona();
            this.grdListado.AutoGenerateColumns = false;
            this.grdListado.DataSource = objPersona.CargarDatosGridView();
            this.AsignarPropiedadesDataGridView();
            cboDocumento.DataSource = objTipoDocumento.CargarComboBox();
            cboDocumento.DisplayMember = "DESCRIPCION";
            cboDocumento.ValueMember = "CODIGO";
            cboTipoPersona.DataSource = objTipoPersona.CargarComboBox();
            cboTipoPersona.DisplayMember = "DESCRIPCION";
            cboTipoPersona.ValueMember = "CODIGO";
            txtApellido1.CharacterCasing = CharacterCasing.Upper;
            txtApellido2.CharacterCasing = CharacterCasing.Upper;
            txtAtencion.CharacterCasing = CharacterCasing.Upper;
            txtCodigo.CharacterCasing = CharacterCasing.Upper;
            txtCriterioBuscar.CharacterCasing = CharacterCasing.Upper;
            txtDireccion.CharacterCasing = CharacterCasing.Upper;
            txtNombre1.CharacterCasing = CharacterCasing.Upper;
            txtNombre2.CharacterCasing = CharacterCasing.Upper;
            txtRazonSocial.CharacterCasing = CharacterCasing.Upper;
            txtRuc.CharacterCasing = CharacterCasing.Upper;
            txtTelefono.CharacterCasing = CharacterCasing.Upper;
            txtCriterioBuscar.Select();
        }

        private void AsignarPropiedadesDataGridView()
        {
            grdListado.AutoGenerateColumns = false;
            grdListado.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            grdListado.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            grdListado.Columns[0].DataPropertyName = "CODIGO";
            grdListado.Columns[1].DataPropertyName = "RUC";
            grdListado.Columns[2].DataPropertyName = "RAZON_SOCIAL";
            grdListado.Columns[3].DataPropertyName = "NOMBRE1";
            grdListado.Columns[4].DataPropertyName = "NOMBRE2";
            grdListado.Columns[5].DataPropertyName = "APELLIDO1";
            grdListado.Columns[6].DataPropertyName = "APELLIDO2";
            grdListado.Columns[7].DataPropertyName = "CODIGO_TIPO_DOCUMENTO";
            grdListado.Columns[8].DataPropertyName = "TIPO_DOCUMENTO";
            grdListado.Columns[9].DataPropertyName = "TELEFONO";
            grdListado.Columns[10].DataPropertyName = "CODIGO_TIPO";
            grdListado.Columns[11].DataPropertyName = "TIPO_PERSONA";
            grdListado.Columns[12].DataPropertyName = "DIRECCION";
            grdListado.Columns[13].DataPropertyName = "ATENCION";
        }

        private void btnNuevoCancelar_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesTextBox();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
        }

        private void btnNuevoLimpiar_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesTextBox();
        }

        private void btnNuevoSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnModificarSeleccionar_Click(object sender, EventArgs e)
        {
            string codigo, ruc, razonSocial, nombre1, nombre2, apellido1, apellido2, codigoTipoDocumento,
                tipoDocumento, telefono, codigoTipo, tipoPersona, direccion, atencion;

            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            ruc = grdListado.CurrentRow.Cells[1].Value.ToString();
            razonSocial = grdListado.CurrentRow.Cells[2].Value.ToString();
            nombre1 = grdListado.CurrentRow.Cells[3].Value.ToString();
            nombre2 = grdListado.CurrentRow.Cells[4].Value.ToString();
            apellido1 = grdListado.CurrentRow.Cells[5].Value.ToString();
            apellido2 = grdListado.CurrentRow.Cells[6].Value.ToString();
            codigoTipoDocumento = grdListado.CurrentRow.Cells[7].Value.ToString();
            tipoDocumento = grdListado.CurrentRow.Cells[8].Value.ToString();
            telefono = grdListado.CurrentRow.Cells[9].Value.ToString();
            codigoTipo = grdListado.CurrentRow.Cells[10].Value.ToString();
            tipoPersona = grdListado.CurrentRow.Cells[11].Value.ToString();
            direccion = grdListado.CurrentRow.Cells[12].Value.ToString();
            atencion = grdListado.CurrentRow.Cells[13].Value.ToString();

            DialogResult respuesta;
            respuesta = MessageBox.Show("¿DESEA EDITAR EL REGISTRO SELECCIONADO?", "SISTEMA DE CAJA CHICA",
                MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (respuesta == DialogResult.Yes)
            {
                txtCodigo.Text = codigo;
                txtRuc.Text = ruc;
                txtRazonSocial.Text = razonSocial;
                txtNombre1.Text = nombre1;
                txtNombre2.Text = nombre2;
                txtApellido1.Text = apellido1;
                txtApellido2.Text = apellido2;
                cboDocumento.SelectedValue = codigoTipoDocumento;
                txtTelefono.Text = telefono;
                cboTipoPersona.SelectedValue = codigoTipo;
                txtDireccion.Text = direccion;
                txtAtencion.Text = atencion;

                sbMantenimiento.ExpandedPanel = sbpModificar;
                stcMaestro.SelectedTab = stiRegistro;
                txtRuc.Select();
            }
            else
            {
                this.LimpiarControlesTextBox();
                txtCriterioBuscar.Select();
                sbMantenimiento.ExpandedPanel = sbpVer;
                stcMaestro.SelectedTab = stiListado;
            }
        }

        private void grdListado_DoubleClick(object sender, EventArgs e)
        {
            string codigo, ruc, razonSocial, nombre1, nombre2, apellido1, apellido2, codigoTipoDocumento,
                tipoDocumento, telefono, codigoTipo, tipoPersona, direccion, atencion;

            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            ruc = grdListado.CurrentRow.Cells[1].Value.ToString();
            razonSocial = grdListado.CurrentRow.Cells[2].Value.ToString();
            nombre1 = grdListado.CurrentRow.Cells[3].Value.ToString();
            nombre2 = grdListado.CurrentRow.Cells[4].Value.ToString();
            apellido1 = grdListado.CurrentRow.Cells[5].Value.ToString();
            apellido2 = grdListado.CurrentRow.Cells[6].Value.ToString();
            codigoTipoDocumento = grdListado.CurrentRow.Cells[7].Value.ToString();
            tipoDocumento = grdListado.CurrentRow.Cells[8].Value.ToString();
            telefono = grdListado.CurrentRow.Cells[9].Value.ToString();
            codigoTipo = grdListado.CurrentRow.Cells[10].Value.ToString();
            tipoPersona = grdListado.CurrentRow.Cells[11].Value.ToString();
            direccion = grdListado.CurrentRow.Cells[12].Value.ToString();
            atencion = grdListado.CurrentRow.Cells[13].Value.ToString();

            DialogResult respuesta;
            respuesta = MessageBox.Show("¿DESEA EDITAR EL REGISTRO SELECCIONADO?", "SISTEMA DE CAJA CHICA",
                MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (respuesta == DialogResult.Yes)
            {
                txtCodigo.Text = codigo;
                txtRuc.Text = ruc;
                txtRazonSocial.Text = razonSocial;
                txtNombre1.Text = nombre1;
                txtNombre2.Text = nombre2;
                txtApellido1.Text = apellido1;
                txtApellido2.Text = apellido2;
                cboDocumento.SelectedValue = codigoTipoDocumento;
                txtTelefono.Text = telefono;
                cboTipoPersona.SelectedValue = codigoTipo;
                txtDireccion.Text = direccion;
                txtAtencion.Text = atencion;

                sbMantenimiento.ExpandedPanel = sbpModificar;
                stcMaestro.SelectedTab = stiRegistro;
                txtRuc.Select();
            }
            else
            {
                this.LimpiarControlesTextBox();
                txtCriterioBuscar.Select();
                sbMantenimiento.ExpandedPanel = sbpVer;
                stcMaestro.SelectedTab = stiListado;
            }
        }

        private void btnModificarGuardarCambios_Click(object sender, EventArgs e)
        {
            objPersona = new clsPersona();
            try
            {
                objPersona.GuardarCambios(
                    int.Parse(txtCodigo.Text),
                    txtRuc.Text.Trim(),
                    txtRazonSocial.Text.Trim(),
                    txtNombre1.Text.Trim(),
                    txtNombre2.Text.Trim(),
                    txtApellido1.Text.Trim(),
                    txtApellido2.Text.Trim(),
                    cboDocumento.SelectedValue.ToString(),
                    txtTelefono.Text.Trim(),
                    cboTipoPersona.SelectedValue.ToString(),
                    txtDireccion.Text.Trim(),
                    txtAtencion.Text.Trim());
                MessageBox.Show("SE HA GUARDADO LOS CAMBIOS DEL PROVEEDOR", "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                grdListado.DataSource = objPersona.CargarDatosGridView();
                this.LimpiarControlesTextBox();
                sbMantenimiento.ExpandedPanel = sbpVer;
                stcMaestro.SelectedTab = stiListado;
                txtCriterioBuscar.Select();
            }
            catch (Exception EX)
            {
                MessageBox.Show("SE HA PRODUCIDO UN ERROR AL GUARDAR \n LOS CAMBIOS DEL PROVEEDOR POR FAVOR INTENTE DE NUEVO",
                    "SISTEMA DE CAJA CHICA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void btnModificarCancelar_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesTextBox();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
        }

        private void btnModificarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnEliminarEliminar_Click(object sender, EventArgs e)
        {
            string codigo;
            objPersona = new clsPersona();
            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
           
            DialogResult respuesta;
            respuesta = MessageBox.Show("¿DESEA ELIMINAR EL REGISTRO SELECCIONADO?", "SISTEMA DE CAJA CHICA",
                MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (respuesta == DialogResult.Yes)
            {
                try
                {
                    objPersona.Eliminar(int.Parse(codigo));
                    grdListado.DataSource = objPersona.CargarDatosGridView();
                }
                catch(Exception ex)
                {
                    MessageBox.Show("SE HA PRODUCIDO UN ERROR AL BORRAR EL PROVEEDOR\nINTENTE DE NUEVO",
                        "SISTEMA DE CAJA DE CHICA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void txtCriterioBuscar_TextChanged(object sender, EventArgs e)
        {
            if (string.Empty != txtCriterioBuscar.Text)
            {
                try
                {
                    grdListado.DataSource = objPersona.Buscar(txtCriterioBuscar.Text.Trim());
                }
                catch (Exception ex)
                {

                }
            }
            else
            {
                grdListado.DataSource = objPersona.CargarDatosGridView();
            }
        }

        private void btnVerImprimir_Click(object sender, EventArgs e)
        {

        }

        private void btnEliminarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnVerSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
